<?php

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/**
 * Description of DaoEndereco
 *
 * @author Pesquisa
 */
require_once 'Banco.php';
require_once 'Model/Endereco.php';

class DaoEndereco extends Banco {

    function getEnderecos() {
        $enderecos = array();
        Banco::conecta();
        $banco = Banco::getBanco();
        $query = $banco->query("SELECT * FROM TB_ENDERECO");
        if (!empty($query)) {
            while ($end = $query->fetch_assoc()) {
                $endereco = new Endereco();
                $endereco->setCodigo($end['END_CODIGO']);
                $endereco->setDescricao($end['END_DESCRICAO']);
                $enderecos[] = (object) $endereco;
            }
        }

        return $enderecos;
    }

    function getEndereco($codigo) {
        $enderecos = new Endereco();
        Banco::conecta();
        $banco = Banco::getBanco();
        if ($sql = $banco->prepare("SELECT END_CODIGO, END_DESCRICAO FROM TB_ENDERECO WHERE END_CODIGO = ?")) {
            $sql->bind_param('i', $codigo);
            $sql->execute();
            $sql->bind_result($id, $descricao);
            while ($sql->fetch()) {
                $enderecos->setCodigo($id);
                $enderecos->setDescricao($descricao);
            }
        }
        return (object) $enderecos;
    }

    function getEnderecoByDescricao($descricao) {
        $enderecos = NULL;
        Banco::conecta();
        $banco = Banco::getBanco();
        if ($sql = $banco->prepare("SELECT END_CODIGO, END_DESCRICAO FROM TB_ENDERECO WHERE END_DESCRICAO = ?")) {
            $sql->bind_param('s', $descricao);
            $sql->execute();
            $sql->bind_result($id, $descricao);
            while ($sql->fetch()) {
                $enderecos = new Endereco();
                $enderecos->setCodigo($id);
                $enderecos->setDescricao($descricao);
            }
        }
        return $enderecos;
    }

    function addEndereco(Endereco $endereco) {
        Banco::conecta();
        $banco = Banco::getBanco();
        $end = $endereco->getDescricao();
        $lastid = -1;
        $e = $this->getEnderecoByDescricao($end);
        if (!$e) {
            if ($sql = $banco->prepare("INSERT INTO TB_ENDERECO VALUES (DEFAULT, ?);")) {
                $sql->bind_param('s', $end);
                $sql->execute();
                $lastid = $sql->insert_id;
                $sql->close();
            } else {
                echo $banco->error;
                return null;
            }
        }else{
            return $e;
        }
        $endereco->setCodigo($lastid);
        return (object) $endereco;
    }

}

?>
